//全局基础地址设置
axios.defaults.baseURL = 'http://api-breakingnews-web.itheima.net'

//请求拦截器
axios.interceptors.request.use(function (config) {
    // 在发送请求之前做些什么
    // 请求拦截器中的config是当前所发出的请求的信息对象, 在这个config对象中有headers可以自定义请求头
    // console.log('经过了请求拦截器', config);
    // my开头才需要加  /api开头不需要加 --- todo-------------
    config.headers.Authorization = localStorage.getItem('big-event-token')
    return config;
}, function (error) {
    // 对请求错误做些什么
    return Promise.reject(error);
});
// 添加响应拦截器
axios.interceptors.response.use(function (response) {
    // 对响应数据做点什么 响应拦截器中response就是当前这次请求响应的结果,response中的data就是要的message和status所在的对象
    console.log('响应拦截器执行了', response)
    const { data: { message, status } } = response
    if (status === 0) {
        layer.msg(message)
    }
    // 处理token过期 
    // 如果因为别的情况导致响应状态码也是1,也会强制登录, 这个项目接口设计的问题, 以后项目中|开发中 关于token过期有一个单独的状态码 4开头  401 403
    if (status === 1) {
        layer.msg(message)
        // 为了代码的严谨性 最好将过期的本地存储的token清除
        localStorage.removeItem('big-event-token')
        location.href = '/login.html'
    }
    return response  // 将响应的数据交给客户端
}, function (error) {
    // 对响应错误做点什么
    return Promise.reject(error)
})

//注册接口
const reqPostRegister = (obj) => {
    return axios({
        method: 'post',
        url: '/api/reguser',
        data: handleDataFormat(obj)
    })
}
//登录接口
const reqPostLogin = (obj) => {
    return axios({
        method: 'post',
        url: '/api/login',
        data: handleDataFormat(obj),
    })
}

//获取个人信息接口
const reqGetUserInfo = () => {
    return axios({
        method: 'get',
        url: '/my/userinfo'
    })

}
//更新用户信息的接口
const reqPostUpdateUserInfo = (obj) => {
    return axios({
        method: 'post',
        url: '/my/userinfo',
        data: handleDataFormat(obj),
    })
}

//密码重置接口
const reqPostRePwd = function (obj) {
    return axios({
        method: 'post',
        url: '/my/updatepwd',
        data: handleDataFormat(obj)
    })
}